﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using SIM.Geo.BE;
using System.Linq;

namespace SIM.Geo.DA
{
    public class DAEstructuraTipoEstructuraTipoRelleno : Base
    {
        #region Metodos
        /// <summary>
        /// Método que devuelve la lista de EstructuraTipoRelleno
        /// </summary>
        /// <returns></returns>
        public List<EstructuraTipoRelleno> ListarEstructuraTipoRelleno(int codigoSondaje, int codigoEstructura)
        {
            return this.Context.EstructuraTipoRelleno.Where(x => x.CodigoSondaje.Equals(codigoSondaje) && x.CodigoEstructura.Equals(codigoEstructura)).ToList();
        }
        /// <summary>
        /// Método para insertar una EstructuraTipoRelleno
        /// </summary>
        /// <param name="EstructuraTipoRelleno"></param>
        /// <returns></returns>
        public int InsertarEstructuraTipoRelleno(EstructuraTipoRelleno estructuraTipoRelleno)
        {
            this.Context.EstructuraTipoRelleno.AddObject(estructuraTipoRelleno);
            this.Context.SaveChanges();
            return estructuraTipoRelleno.CodigoTipoRelleno;
        }
        /// <summary>
        /// Método para modificar un EstructuraTipoRelleno
        /// </summary>
        /// <param name="EstructuraTipoRelleno"></param>
        public void ModificarEstructuraTipoRelleno(EstructuraTipoRelleno estructuraTipoRelleno)
        {
            this.Context.EstructuraTipoRelleno.Attach(estructuraTipoRelleno);
            this.Context.ObjectStateManager.ChangeObjectState(estructuraTipoRelleno, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar EstructuraTipoRelleno
        /// </summary>
        /// <param name="EstructuraTipoRelleno"></param>
        public void EliminarEstructuraTipoRelleno(EstructuraTipoRelleno estructuraTipoRelleno)
        {
            this.Context.EstructuraTipoRelleno.Attach(estructuraTipoRelleno);
            this.Context.ObjectStateManager.ChangeObjectState(estructuraTipoRelleno, EntityState.Deleted);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que devuelve EstructuraTipoRelleno por codigo
        /// </summary>
        /// <param name="codigoEstructuraTipoRelleno"></param>
        /// <returns></returns>
        public EstructuraTipoRelleno ObtenerEstructuraTipoRelleno(int codigoTipoRelleno, int codigoSondaje, int codigoEstructura)
        {
            return this.Context.EstructuraTipoRelleno.Where(x => x.CodigoTipoRelleno.Equals(codigoTipoRelleno) && x.CodigoSondaje.Equals(codigoSondaje) && x.CodigoEstructura.Equals(codigoEstructura)).FirstOrDefault();
        }
        #endregion
    }
}
